<html>
<head><meta charset="utf-8"><title>different entry points for x.py · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html">different entry points for x.py</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="221364556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364556">(Jan 01 2021 at 19:13)</a>:</h4>
<p>Honestly one thought I've had is to ditch x.py at the root</p>



<a name="221364598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364598">(Jan 01 2021 at 19:14)</a>:</h4>
<p>And just say "no there are multiple build systems" - one for std, one for rustc, one for tools</p>



<a name="221364603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364603">(Jan 01 2021 at 19:14)</a>:</h4>
<p>They can obviously call into shared code</p>



<a name="221364609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364609">(Jan 01 2021 at 19:14)</a>:</h4>
<p>But the entry points being explicitly different may help with context switching etc</p>



<a name="221364614"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364614" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364614">(Jan 01 2021 at 19:14)</a>:</h4>
<p>Oh interesting, I kind of like that</p>



<a name="221364623"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364623" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364623">(Jan 01 2021 at 19:15)</a>:</h4>
<p>And the entry point for distros will be <em>only</em> <code>make</code> or bootstrap.py?</p>



<a name="221364624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364624">(Jan 01 2021 at 19:15)</a>:</h4>
<p>e.g. I imagine <span class="user-mention" data-user-id="121053">@varkor</span> would be much less confused if the compiler's check couldn't check just std</p>



<a name="221364684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364684">(Jan 01 2021 at 19:16)</a>:</h4>
<p>Well, I think a separate "dist build system" actually makes a lot of sense, requirements for distribution are pretty different and even the on-demand compilation model used in rustbuild is less well suited.</p>



<a name="221364766"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364766" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364766">(Jan 01 2021 at 19:19)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> <a href="#narrow/stream/131828-t-compiler/topic/x.2Epy.20check.20stage.200/near/221364624">said</a>:</p>
<blockquote>
<p>e.g. I imagine <span class="user-mention silent" data-user-id="121053">varkor</span> would be much less confused if the compiler's check couldn't check just std</p>
</blockquote>
<p>Yes, I think that would also have removed the confusion.</p>



<a name="221364769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364769">(Jan 01 2021 at 19:19)</a>:</h4>
<p>so I'm imagining something like this:</p>
<div class="codehilite"><pre><span></span><code>.
├── compiler
│   ├── rustc
│   └── x.py
├── library
│   ├── std
│   └── x.py
├── Makefile
└── src
    ├── librustdoc
    │   └── x.py
    └── tools
        └── rustdoc
            └── x.py
</code></pre></div>



<a name="221364780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364780">(Jan 01 2021 at 19:19)</a>:</h4>
<p>and maybe have a top-level x.py that basically <em>only</em> has <code>x.py setup</code> and tells you to use one of the others</p>



<a name="221364826"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364826" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364826">(Jan 01 2021 at 19:20)</a>:</h4>
<p>I'm just imaging all the people angry that I'm taking away <code>x.py build</code> <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="221364891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364891">(Jan 01 2021 at 19:23)</a>:</h4>
<p>I guess we could keep all of the current x.py but have a big scary warning?</p>



<a name="221364894"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364894" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364894">(Jan 01 2021 at 19:23)</a>:</h4>
<p>I feel like that would still hit a ton of resistance</p>



<a name="221364897"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364897" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364897">(Jan 01 2021 at 19:23)</a>:</h4>
<p>Would this also make using <code>cargo</code> instead of <code>x.py</code> in some cases more plausible (not that I'm invested in it either way)?</p>



<a name="221364903"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364903" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364903">(Jan 01 2021 at 19:23)</a>:</h4>
<p>the only places I see using cargo as plausible is for stage 0 std (with <code>cfg(bootstrap)</code>)</p>



<a name="221364905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221364905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221364905">(Jan 01 2021 at 19:23)</a>:</h4>
<p>this is mostly about the interface</p>



<a name="221365012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365012">(Jan 01 2021 at 19:26)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116122">simulacrum</span> so basically my position is I think this is a good idea and I'm happy to write code for it, but I'm not willing to go through all the arguments to get people to use it :P</p>



<a name="221365013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365013">(Jan 01 2021 at 19:26)</a>:</h4>
<p>Yeah I mean I think it's a shift for sure</p>



<a name="221365034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365034">(Jan 01 2021 at 19:27)</a>:</h4>
<p>That said since the first draft would not change rustbuild at all I imagine (just add different defaults, essentially, and conditions / panics in some cases), it may well be that we can retain x.py at the root for now</p>



<a name="221365037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365037">(Jan 01 2021 at 19:27)</a>:</h4>
<p>Land code for the new stuff, pointing docs at it</p>



<a name="221365084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365084">(Jan 01 2021 at 19:28)</a>:</h4>
<p>And then - presuming it works well and newcomers generally feel the new thing is easier to understand and works better - deprecate root x.pu</p>



<a name="221365098"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365098" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365098">(Jan 01 2021 at 19:29)</a>:</h4>
<p>I'll put you in charge of that part :P</p>



<a name="221365101"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365101" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365101">(Jan 01 2021 at 19:29)</a>:</h4>
<p>But yeah this sounds like a great idea :)</p>



<a name="221365105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365105">(Jan 01 2021 at 19:29)</a>:</h4>
<p>I think starting it with a high friction area like just std for example would be good.</p>



<a name="221365162"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365162" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365162">(Jan 01 2021 at 19:30)</a>:</h4>
<p>let me open an issue so I don't forget, I might have time this weekend :)</p>



<a name="221365177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221365177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221365177">(Jan 01 2021 at 19:31)</a>:</h4>
<p>(<a href="https://github.com/rust-lang/rust/pull/79540">https://github.com/rust-lang/rust/pull/79540</a> is still waiting on review btw - I can make progress without anything super in depth, I could mostly use a response to <a href="https://github.com/rust-lang/rust/pull/79540#issuecomment-751953277">https://github.com/rust-lang/rust/pull/79540#issuecomment-751953277</a>)</p>



<a name="221366313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221366313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Wesley Wiser <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221366313">(Jan 01 2021 at 20:00)</a>:</h4>
<p>I haven't thought about this a ton but I would suggest that if there is value in having multiple systems, then I think there is value in those systems being named differently. I think that would help reinforce they are different as well as make troubleshooting and answering questions easier. I could see people asking things like "I ran <code>x.py build</code> and it didn't work right" and the very first question is always going to be "what directory were you cd'd into?". Having the names be different would answer that question right off the bat.</p>



<a name="221366418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221366418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> varkor <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221366418">(Jan 01 2021 at 20:03)</a>:</h4>
<p>They could be called <code>stage0.py</code>, <code>stage1.py</code>, etc. <span aria-label="upside down" class="emoji emoji-1f643" role="img" title="upside down">:upside_down:</span></p>



<a name="221366534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221366534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221366534">(Jan 01 2021 at 20:06)</a>:</h4>
<p>std.py and compiler.py seem much more likely - I completely agree the names should be different</p>



<a name="221366629"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221366629" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221366629">(Jan 01 2021 at 20:08)</a>:</h4>
<p>oh I should probably make this an MCP instead of an issue</p>



<a name="221366637"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221366637" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221366637">(Jan 01 2021 at 20:09)</a>:</h4>
<p>(it was <a href="https://github.com/rust-lang/rust/issues/80596">https://github.com/rust-lang/rust/issues/80596</a> but I'm about to close it)</p>



<a name="221366729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221366729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221366729">(Jan 01 2021 at 20:11)</a>:</h4>
<p><span class="user-mention" data-user-id="116122">@simulacrum</span> can you combine this stream with <a href="#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Add.20different.20entry.20points.20for.20x.2Epy.20compiler-team.23396">https://rust-lang.zulipchat.com/#narrow/stream/233931-t-compiler.2Fmajor-changes/topic/Add.20different.20entry.20points.20for.20x.2Epy.20compiler-team.23396</a> ?</p>



<a name="221366732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221366732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221366732">(Jan 01 2021 at 20:11)</a>:</h4>
<p>not sure if zulip lets you do that</p>



<a name="221366736"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221366736" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221366736">(Jan 01 2021 at 20:11)</a>:</h4>
<p>Not sure, on mobile for right now so I can't</p>



<a name="221372615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372615">(Jan 01 2021 at 22:41)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232545">Joshua Nelson</span> <a href="#narrow/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy/near/221364826">said</a>:</p>
<blockquote>
<p>I'm just imaging all the people angry that I'm taking away <code>x.py build</code> <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>
</blockquote>
<p>I think it would still be good for there to be a unified thing that can do the right then when you're, say, messing with lang items so are updating both the compiler and the library.</p>



<a name="221372663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372663">(Jan 01 2021 at 22:42)</a>:</h4>
<p>you can do that from compiler/ though</p>



<a name="221372665"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372665" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372665">(Jan 01 2021 at 22:42)</a>:</h4>
<p><code>compiler.py build library/std</code> would default to --stage 1</p>



<a name="221372740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372740">(Jan 01 2021 at 22:44)</a>:</h4>
<p>I'm confused what this is doing, then.  Is it just changing the defaults if you're <code>cd</code>ed into a folder when you run it?</p>



<a name="221372754"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372754" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372754">(Jan 01 2021 at 22:45)</a>:</h4>
<p>Because a build script building something in a sibling directory is also surprising to me.</p>



<a name="221372830"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372830" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372830">(Jan 01 2021 at 22:46)</a>:</h4>
<p>Yes, this is just changing the defaults.</p>
<p><span class="user-mention silent" data-user-id="125270">scottmcm</span> <a href="#narrow/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy/near/221372754">said</a>:</p>
<blockquote>
<p>Because a build script building something in a sibling directory is also surprising to me.</p>
</blockquote>
<p>This is fundamental to bootstrapping though - if you don't build library/std, you can't run any of the tests</p>



<a name="221372849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372849">(Jan 01 2021 at 22:46)</a>:</h4>
<p>in fact I was going to have <code>compiler.py</code> default to building both stage 0 compiler/rustc and stage1 library/std</p>



<a name="221372863"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372863" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372863">(Jan 01 2021 at 22:47)</a>:</h4>
<p>the same way <code>x.py build</code> does today (but without building tools)</p>



<a name="221372996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221372996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> scottmcm <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221372996">(Jan 01 2021 at 22:50)</a>:</h4>
<p>It's fundamental to bootstrapping that the compiler and library both need to be built, but that's different from <code>foo.py</code> building things in <code>../bar</code>.</p>



<a name="221373008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221373008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221373008">(Jan 01 2021 at 22:51)</a>:</h4>
<p>I'm confused. How do you propose for <code>compiler.py test src/test/ui</code> to work if it doesn't build ../library/std?</p>



<a name="221373301"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221373301" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221373301">(Jan 01 2021 at 22:59)</a>:</h4>
<p>or are you suggesting I get rid of filters altogether and there is <em>only</em> <code>compiler.py build</code>, which always builds the standard library? I think that would work.</p>



<a name="221373540"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221373540" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221373540">(Jan 01 2021 at 23:05)</a>:</h4>
<p>There would still be a need for <code>--stage</code>/<code>--keep-stage</code>/<code>--keep-stage-std</code> but I think filters can go away if there's a build script for each of the profiles</p>



<a name="221373583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221373583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Joshua Nelson <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221373583">(Jan 01 2021 at 23:06)</a>:</h4>
<p>except tools maybe, I have to think about how that would work - you might want to build only some of the tools.</p>



<a name="221376806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221376806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> simulacrum <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221376806">(Jan 02 2021 at 00:41)</a>:</h4>
<p>I would expect all of the python scripts to maybe be at root, I'm not a fan of cding into each directory for development</p>



<a name="221399919"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221399919" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221399919">(Jan 02 2021 at 13:23)</a>:</h4>
<p>I like the general direction of this. :) recently there was a lot of changing x.py defaults, which surely made it better for some cases but also worse for others -- and generally it made things more complicated. different use-cases need different defaults, so acknowledging that through dedicated scripts for "if you are working on the standard library, ..." vs "if you are working on the compiler, ..." makes a lot of sense. this also works better than <code>x.py setup</code> I think because the same person might first to library work and then compiler work (I certainly switch between the two all the time).</p>



<a name="221417975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221417975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Phil H <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221417975">(Jan 02 2021 at 21:20)</a>:</h4>
<p>Would subtree tools like Clippy have to provide their own <code>x.py</code> then?</p>



<a name="221418029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/different%20entry%20points%20for%20x.py/near/221418029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Phil H <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/different.20entry.20points.20for.20x.2Epy.html#221418029">(Jan 02 2021 at 21:21)</a>:</h4>
<p>Ah nevermind, you're aware of the tools stuff already :)</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>